#include<bits/stdc++.h>
using namespace std;
typedef long long ll;


int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};

vector<vector<int> >g(25,vector<int>(25,0));
vector<vector<pair<int,int>> >fa(25,vector<pair<int,int>>(25));
vector<vector<int> >q(25,vector<int>(25,0));
vector<vector<int> >vis(25,vector<int>(25,0));

pair<int,int> find(int x,int y){
    if(fa[x][y].first==x&&fa[x][y].second==y) return {x,y};
    else return fa[x][y]=find(fa[x][y].first,fa[x][y].second);
}


int remove(int x,int y,int ty,int sum){
    queue<pair<int,int> >q1;
    q1.push({x,y});
    while(!q1.empty()){
        pair<int,int> temp=q1.front();
        q1.pop();
        if(g[temp.first][temp.second]==0)continue;
        // cout<<"here:"<<temp.first<<" "<<temp.second<<endl;
        sum++;
        vis[temp.first][temp.second]=1;
        g[temp.first][temp.second]=0;
        q[temp.first][temp.second]=0;
        for(int i=0;i<4;i++){
            int nx=temp.first+dx[i];
            int ny=temp.second+dy[i];
            if(nx>19||nx<1||ny>19||ny<1)continue;
            if(ty==g[nx][ny]){
                q1.push({nx,ny});
                // cout<<"here1:"<<temp.first<<" "<<temp.second<<endl;
                // cout<<"here2:"<<ty<<" "<<g[2][2]<<endl;
                // cout<<"here3:"<<nx<<" "<<ny<<endl;
                
            }
            if(ty!=g[nx][ny]&&g[nx][ny]!=0){
                pair<int,int> temp1=find(nx,ny);
                q[temp1.first][temp1.second]++;
            }
        }
        
    }
    return sum;
}


void solve(){
    int m;
    cin>>m;
    int f=1;//1 black 0 white
    int cnt=1;
    int sum=0;
    int sum1=0;
    while(m--){
        for(int i=1;i<20;i++){
            fill(vis[i].begin(),vis[i].end(),0);
        }
        
        int x,y;
        cin>>x>>y;
        sum=0;
        sum1=0;
        if(f){
            g[x][y]=1;
            fa[x][y]={x,y};
            int qi=0;
            for(int i=0;i<4;i++){
                int nx=x+dx[i];
                int ny=y+dy[i];
                if(nx<1||ny<1||nx>19||ny>19){
                    continue;
                }
                else if(g[nx][ny]==0&&!vis[nx][ny]){
                    qi++;
                }
                else if(g[nx][ny]!=g[x][y]&&g[nx][ny]!=0){
                    pair<int,int> temp=find(nx,ny);
                    q[temp.first][temp.second]--;
                    if(q[temp.first][temp.second]==0){
                        sum=remove(temp.first,temp.second,g[temp.first][temp.second],0);
                    }
                }
                else if(g[nx][ny]==g[x][y]){
                    qi--;
                    pair<int,int> temp=find(nx,ny);
                    if(fa[temp.first][temp.second]!=(pair<int,int>){x,y}){
                        q[x][y]+=q[temp.first][temp.second];
                    }
                    fa[temp.first][temp.second]={x,y};
                }
            }
            q[x][y]+=qi;
            if(q[x][y]==0)sum1=remove(x,y,g[x][y],0);
            cout<<sum1<<" "<<sum<<endl;
        }
        else {
            g[x][y]=2;
            fa[x][y]={x,y};
            int qi=0;
            for(int i=0;i<4;i++){
                int nx=x+dx[i];
                int ny=y+dy[i];
                if(nx<1||ny<1||nx>19||ny>19){
                    continue;
                }
                else if(g[nx][ny]==0&&!vis[nx][ny]){
                    qi++;
                }
                else if(g[nx][ny]!=g[x][y]&&g[nx][ny]!=0){
                    pair<int,int> temp=find(nx,ny);
                    q[temp.first][temp.second]--;
                    // if(cnt==8)cout<<q[temp.first][temp.second]<<'\n';
                    if(q[temp.first][temp.second]==0){
                        sum=remove(temp.first,temp.second,g[temp.first][temp.second],0);
                    }
                }
                else if(g[nx][ny]==g[x][y]){
                    qi--;
                    pair<int,int> temp=find(nx,ny);
                    if(fa[temp.first][temp.second]!=(pair<int,int>){x,y}){
                        q[x][y]+=q[temp.first][temp.second];
                    }
                    fa[temp.first][temp.second]={x,y};
                }
            }
            q[x][y]+=qi;
            if(q[x][y]==0)sum1=remove(x,y,g[x][y],0);
            cout<<sum<<" "<<sum1<<endl;
        }

        // if(cnt==6){
        //     pair<int,int>temp=find(2,1);
        //     cout<<temp.first<<' '<<temp.second<<" fuqin"<<'\n';
        // }
        // if(cnt==8){
        //     cout<<q[1][1]<<endl;
        // }
        f=1-f;
        cnt++;
        // for(int i=1;i<8;i++){
        //     for(int j=1;j<8;j++){
        //         cout<<g[i][j]<<' ';
        //     }
        //     cout<<'\n';
        // }
    }
    
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);

    int _=1;
    //cin>>_;
    while(_--){
        solve();
    }
    return 0;
}